# -*- coding:utf-8 -*-
"""
@Time:  2024/5/11 15:16
@Auth:  Mrs.Gou 
@Function:  字典的遍历
"""
# 学员信息字典
import json

dict2 = {'will': 1001, 'roy': 1002, 'tufei': 1003}

# 默认不是一个纯粹的列表，可以转换成列表
# 其实键和值都是用列表存在
keys = list(dict2.keys())
print(keys)
values = list(dict2.values())
print(values)

# 键的遍历
for key in dict2.keys():
    print(key, ':', dict2.get(key))
# 值的遍历
for values in dict2.values():
    print(values)

# 元素的遍历
for item in dict2.items():
    print(item[0], ':', item[1])

# 对应赋值
# a, b = (1, 2)
a, b = [1, 2]
print(a, b)

# 键值对的遍历
for key, value in dict2.items():
    print(key, ':', value)

# 每个人的学号都要加1
for key in dict2.keys():
    dict2[key] += 1
print(dict2)

# 如果要改变键的值，必须要拿到键
# 如果只需要值，那就可以用值的遍历
# 如果要同时使用键和值，可以使用元素或者键值对的遍历

# 一般键是字符串，有实际含义，这样字典用起来才顺手
dict3 = {'name': 'will', 'age': 18, 'height': 170}

# 字典和json是可以互转的（json字符串其实就是字典的字符串体现）。交互式编程里，返回值一般都是字典
s = json.dumps(dict3)
print(s)
print(type(s))

# json字符串也可以用loads() 输出：{"name": "will", "age": 18, "height": 170} 一般双引号，就是字符串
# Python里面，字典输出都是用的单引号，如果是一个双引号，基本就是json字符串
print(json.loads(s))

# 课外作业，列表数据去重
list1 = [1, 1, 23, 4, 5, 6, 54, 3, 2, 1]

